creating abstract patterns